package com.ddone.demo.mapper;

import com.ddone.demo.bean.Emp;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author ddone
 * @date 2024/3/18-00:41
 */
public interface EmpMapper {

    Emp selectEmpById(Integer id);

    List<Emp> selectAll();

    int deleteEmpById(Integer id);

    int updateEmpById(Integer id);

    int insertEmp(Emp emp);

    List<Emp> queryByParam(@Param("name") String columName, @Param("val") String value);

    int insertMap(Map<String,Object> map);

    int insertEmpReturnId(Emp emp);

    Double querySalaryById(Integer id);

    String queryNameById(Integer id);

    /**
     *  查询员工信息
     *  根据员工姓名或者工资大于传入的工资！
     *       emp_name = name or em_salary > salary
     *  注意： 如果传入的name为null  不添加emp_name判断
     *   如果传入的salary 大于200才添加判断
     *      ("zhangsan",500) -> emp_name = zhangsan or emp_salary > 500
     *      (null,500)  --> emp_salary > 500
     *        ("zhangsan",100) --> emp_name = zhangsan
     *         (null,100) --> 没有条件
     *
     * @param name
     * @param salary
     * @return
     */
    List<Emp> queryEmpsIfAndWhere(@Param("name") String name, @Param("salary") Double salary);

    int updateEmpByIdSet(Emp emp);

    List<Emp> selectEmployeeByConditionByTrim(Emp emp);

    List<Emp> queryEmpByParamsChoose(@Param("name") String name,@Param("salary") Double salary);

    int batchInsertEmp(@Param("emps") List<Emp> emps);

    int batchUpdateEmp(@Param("emps") List<Emp> emps);

    int batchDeleteEmpByIds(@Param("ids") List<Integer> ids);

    List<Emp> batchQueryEmpByIds(@Param("ids") List<Integer> ids);

    List<Emp> queryEmpByParams(Emp emp);
}
